package com.cci.kangdao.dao;

import com.cci.kangdao.dao.model.*;
import org.mybatis.spring.annotation.MapperScan;

import java.util.List;
import java.util.Map;

@MapperScan
public interface CourseTrainingNPBUDao {

	/**
	 * 查询个人的培训课件
	 * @param map
	 * @return
	 */
	public List<CourseTrainingT> findCourseTrainingByUser(Map<String, Object> map);

	/**
	 * 查询个人课程学习日志
	 * @param map
	 * @return
	 */
	public List<CourseStudyT> findCourseStudyByUser(Map<String, Object> map);

	/**
	 * 搜索课程内容
	 * @param map
	 * @return
	 */
	public List<CourseTrainingT> findCourseTraining(Map<String, Object> map);


	/**
	 * 根据id获取课程内容
	 * @param map
	 * @return
	 */
	public List<CourseTrainingT> findCourseTrainingByID(String courseTrainingID);

	/**
	 * 获取课程详细
	 * @param courseTrainingID
	 * @return
	 */
	public List<CourseDetailT> findCourseDetailById(String courseTrainingID);

	/**
	 * 获取课程详细总时间长
	 * @param courseTrainingID
	 * @return
	 */
	public List<CourseDetailT> findCourseDetailStudyTimeById(String courseTrainingID);

	/**
	 * 获取课程详细学习日志
	 * @param courseTrainingID
	 * @return
	 */
	public List<CourseStudyDetailT> findCourseStudyDetailByUserId(Map<String, Object> map);

	/**
	 * 获取课程考试日志
	 * @param courseTrainingID
	 * @return
	 */
	public List<CourseExamT> findCourseExamByUserId(Map<String, Object> map);

	/**
	 * 插入个人课程学习日志
	 * @param map
	 * @return
	 */
	public int insertCourseStudy(Map<String, Object> map);

	/**
	 * 插入个人学习日志详细课程
	 * @param map
	 * @return
	 */
	public int insertCourseStudyDetail(Map<String, Object> map);

	/**
	 * 修改个人课程学习日志
	 * @param map
	 * @return
	 */
	public int updateCourseStudy(Map<String, Object> map);

	/**
	 * 随机获取课程考题
	 * @param map
	 * @return
	 */
	public List<CourseQuestionT> findCourseQuestionById(Map<String, Object> map);

	/**
	 * 插入课程考试日志
	 * @param map
	 * @return
	 */
	public int insertCourseExam(Map<String, Object> map);

	/**
	 * 插入课题考试详细日志
	 * @param bean
	 * @return
	 */
	public int insertCourseExamDetail(List<Map<String, Object>> list);

	/**
	 * 查询考题的详细结果
	 * @param courseExamID
	 * @return
	 */
	public List<CourseQuestionT> findCourseExamDetailById(String courseExamID);

	/**
	 * 修改课程的参加人数
	 * @param courseTrainingID
	 * @return
	 */
	public int updateCourseTrainingTol(String courseTrainingID);

	/**
	 * 修改个人学习日志状态
	 * @param map
	 * @return
	 */
	public int updateCourseStudyStatus(Map<String, Object> map);

	/**
	 * 修改个人学习详细日志状态
	 * @param map
	 * @return
	 */
	public int updateCourseStudyDetailStatus(Map<String, Object> map);

	/**
	 * 修改课程考试日志状态
	 * @param map
	 * @return
	 */
	public int updateCourseExamStatus(Map<String, Object> map);

	/**
	 * 查询必修课关联表
	 * @param map
	 * @return
	 */
	public List<CourseHasUserT> findCourseHasUserByUserId(Map<String, Object> map);
	/**
	 * 插入选修课程关联表
	 * @param map
	 * @return
	 */
	public int insertCourseHasUser(Map<String, Object> map);

	/**
	 * 修改选修课程关联表
	 * @param map
	 * @return
	 */
	public int updateCourseHasUser(Map<String, Object> map);

	/**
	 * 获取课程学习状态（是否已加入学习0：已加入；1：未加入）
	 * @param map
	 * @return
	 */
	List<Map<String, Object>> getCourseStudyStatus(Map<String, Object> map);
}